package com.eliza.viewmodel.activity

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.view.View
import android.widget.Button
import android.widget.TextView
import androidx.lifecycle.ViewModelProvider
import com.eliza.viewmodel.R
import com.eliza.viewmodel.vm.AddNumVm


/**
* 独立于配置变化
* viewModel  ------------> destroy
* Activity -->create  ---> destroy
* */

class AddNumActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_add_num)
        val btn = findViewById<Button>(R.id.add_num_btn)

        val tv = findViewById<TextView>(R.id.add_num_tv)

        /* 获取 AddNumVm 对应的 viewModel (类似代理对象)*/

        /** 不要向ViewModel中传入Context，会导致内存泄漏
        如果要使用Context，请使用AndroidViewModel中的Application
*/
        val vm = ViewModelProvider(
            this,
            ViewModelProvider.AndroidViewModelFactory(application)
        ).get(AddNumVm::class.java)

        tv.text = vm.number.toString()



        btn.setOnClickListener {
            vm.number++
            tv.text = vm.number.toString()
        }
    }
}